const {isNil, isEmpty} = require("lodash");

function _toTuo(targetString) {
    return targetString.replace(/\_(\w)/g,function(match,letter) {
        return letter.toUpperCase()
    })
}

function tuoTo_(targetString) {
    return targetString.replace(/([A-Z])/g,function(match) {
        return '_' + match.toLowerCase()
    })
}

/**
 * 批量查询
 * @param queryList
 * @returns {Promise<Awaited<unknown>[]>}
 */
function batchQuery(queryList){
    return Promise.all(queryList)
}

/**
 * 获取数组中的指定下标元素
 * @param list
 * @param index 默认首个
 * @returns {*|{}}
 */
function findOne(list, index = 0) {
    return !isEmpty(list) ? list[index] : {}
}

/**
 * 获取非空对象
 * @param object
 * @returns {*|{}}
 */
function ofNullable(object) {
    return !isNil(object) ? object : {}
}

/**
 * 获取对象上的属性
 * @param object
 * @param key
 * @returns {*|null}
 */
function getOrDefault(object, key) {
    return !isNil(object) ? object[key] : null
}




module.exports = {batchQuery,findOne, ofNullable, getOrDefault}
